﻿using System.Collections.Generic;
using MaxStoreShop.Domain.Directories;
using MaxStoreShop.Domain.Shop;

namespace MaxStoreShop.Logic.ServicesContracts.Shop
{
    /// <summary>
    /// Сервис для работы с правилами для должников
    /// </summary>
    public interface IDebtorRuleService
    {
        /// <summary>
        /// Получает список всех правил должников
        /// </summary>
        /// <returns></returns>
        IEnumerable<DebtorRule> GetAllRules();

        /// <summary>
        /// Удаляет указанное правило для должника
        /// </summary>
        /// <param name="debtorRule">Правило для удаления</param>
        void DeleteRule(DebtorRule debtorRule);

        /// <summary>
        /// Сохраняет правило
        /// </summary>
        /// <param name="debtorRule">Сохраняемое правило</param>
        void SaveRule(DebtorRule debtorRule);

        /// <summary>
        /// Получает правило для указанного должника
        /// </summary>
        /// <param name="character">Человек, для которого необходимо получить правило</param>
        /// <returns>Возвращает правило для указанного человека или null</returns>
        DebtorRule GetCharacterDebtRule(Character character);
    }
}
